var async = require('async');

var list = [];

// function exec(){
//     async.series({
//         one: function(callback){
//             setInterval(function () {
//                 list.push('fuck');
//                 if(list.length>5){
//                     clearInterval(this);
//                     callback(null, list);
//                 }
//               },1000);
//             console.log('1done');
            
//         },
//         two: function (callback) {
//             console.log(list);
//             callback(null, 2);
//           }
//     },function(err, results){
//         console.log(results);
//     });
// }
// exec();
// console.log("main done");

// async.waterfall([
// 	function(callback){
//         for(let i = 1; i<800000;i++){
//             list.push(i);
//         }
// 		callback(null, 'one', 'two');
// 	},
// 	function(arg1, arg2, callback){
//       // arg1 now equals 'one' and arg2 now equals 'two'
//         console.log(list);
// 		callback(null, 'three');
// 	},
// 	function(arg1, callback){
// 		// arg1 now equals 'three'
// 		callback(null, 'done');
// 	}
// ], function (err, result) {
//    // result now equals 'done'
//    console.log(result);
// });


var promise = new Promise(function (resolve, reject) {
    setInterval(function () { 
        list.push("fuck");
        if(list.length>5){
            clearInterval(this);
            resolve(list);
        }
     },1000);
     
    
  });
promise.then(function (result) {
    console.log(result);
  });